7. Funkcje |
Funkcje s▒ to bloki instrukcji. Aby wyja╢niµ konieczno╢µ ich istnienia pos│u┐Ω siΩ przyk│adem. Tak wygl▒da aplet zawieraj▒cy ci▒g instrukcji:
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write("To jest pierwsza linijka tekstu<BR>");
document.write("To jest druga linijka tekstu<BR>");
document.write("To jest trzecia linijka tekstu<BR>");
//-->
</SCRIPT>
Efekt dzia│ania:
A teraz ten sam skrypt z wykorzystaniem funkcji:
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write("To jest pierwsza linijka tekstu<BR>");
function napis()
{
document.write("To jest druga linijka tekstu<BR>");
}
document.write("To jest trzecia linijka tekstu<BR>");
//-->
</SCRIPT>
I jaka jest r≤┐nica:
Mo┐na st▒d wywnioskowaµ, ┐e funkcja nie wykonuje siΩ dop≤ki nie jest ona wywo│ana. Funkcje wywo│uje siΩ poprzez napisanie w kodzie jej nazwy wraz z jej ewentualnymi parametrami (w nawiasie), a deklaruje siΩ j▒ w nastΩpuj▒cy spos≤b:
function Nazwa_Funkcji(parametr1, ...)
{
polecenie;
polecenie;
polecenie;
}
Nazwa funkcji, paramtru jak i zmiennej s▒ podporz▒dkowane kilku zasadom:
Jak ju┐ wspomnia│em na pocz▒tku tej lekcji, funkcja jest to blok instrukcji. Takie bloki umieszczamy w nawiasach klamrowych { }
. Je┐eli znasz podstawy programowania w jakimkolwiek jΩzyku, to wiesz zapewne, ┐e jest podzia│ miΩdzy takimi osobnymi blokami instrukcji na procedury, czyli takie, kt≤re siΩ poprostu wykonuj▒, oraz funkcje, kt≤re po wykonaniu wszystkich instrukcji zwracaj▒ jaki╢ produkt swojej dzia│alno╢ci. W JavaScript nie ma procedur, a ich rolΩ spe│niaj▒ funkcje, kt≤re nic nie zwracaj▒. Funkcja mo┐e zwr≤ciµ jak▒╢ warto╢µ dziΩki poleceniu return
. Skoro funkcja co╢ zwraca, zapewne chcieliby╢my, aby efekt tej pracy zosta│ zapisany do jakiej╢ zmiennej. Dokonuje siΩ to zwyk│ym przypisaniem warto╢ci zmiennej, tyle ┐e zamiast wyra┐enia po prawej stronie jest wywo│anie funkcji. Jest ono traktowane jak normalna zmienna typu zwracanego przez funkcjΩ, tote┐ mo┐na na nim wykonywaµ dalsze operacje. Zobacz przyk│ad:
<SCRIPT LANGUAGE="JavaScript">
<!--
function kwadrat(liczba)
{
wynik = liczba * liczba;
return wynik; /* zwr≤cenie warto╢ci */
}
function oblicz() /* niby procedura */
{
liczba2 = 3 * kwadrat(2);
window.alert("Potrojony kwadrat liczby 2 wynosi " + liczba2);
}
//-->
</SCRIPT>
w sekcji <BODY>
<IMG SRC="obrazek.gif" ALT="Kliknij mnie" onClick="oblicz()">
![]() ![]() ![]() |